package com.bonc.ioc.demo.model;

import com.bonc.ioc.demo.model.checkcase.CaseMode;
import com.bonc.ioc.demo.model.checkcase.CheckCase;
import lombok.Data;

import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author LENOVO
 */
@Data
public class ValidationDemo {
    /**
     * @NotEmpty 字符串、集合不能为空
     * @Size 集合中的元素个数是否满足要求
     * @Digits 校验数字的格式
     * @Pattern 使用正则表达式校验字符串
     * @Email  校验邮箱格式
     * @DecimalMax  校验数字或字符串是否小于或等于某个值
     * @DecimalMin  校验数字或字符串是否大于或等于某个值
     */


    @NotBlank(message = "姓名不能为空")
    @Size(min = 2, max = 10, message = "姓名必须为2个字到10个字")
    private String name;

    @Digits(integer = 100, fraction = 1)
    private Integer age;

    /**
     * @Email
     */
    @Pattern(regexp = "^(.+)@(.+)$", message = "邮箱的格式不合法")
    private String email;

    @Size(min = 6, max = 30, message = "地址应该在6-30字符之间")
    private String address;

    @DecimalMax(value = "100.00", message = "体重有些超标哦")
    @DecimalMin(value = "60.00", message = "多吃点饭吧")
    private BigDecimal weight;

    @CheckCase(value = CaseMode.LOWER, message = "名字的拼音需要小写")
    private String spellName;

    @Past
    private Date birthday;

}
